package com.jsoft.jsofted.sys.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.gitee.sunchenbin.mybatis.actable.annotation.Column;
import com.gitee.sunchenbin.mybatis.actable.annotation.Table;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlTypeConstant;
import com.jsoft.jsofted.framework.entity.OfUserEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;
import java.util.LinkedHashMap;

/**
 * 操作日志：记录“什么时间？谁？干了什么事情？结果如何？”
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Table("sys_operationlog")
@TableName("sys_operationlog")
public class OperationLogEntity extends OfUserEntity {

    @Column
    protected Date operationDate;

    @Column(length = 64)
    protected String menuCode;

    @Column(length = 64)
    protected String menuName;

    @Column(length = 16)
    protected String actionCode;

    @Column(length = 32)
    protected String actionName;

    /**
     * 操作结果，如：
     * 操作成功!共新增了20条数据。
     * 操作失败！您没有权限执行该操作。
     * 操作成功！共修改了2条数据。
     * 操作成功！共删除了4条数据。
     * 操作成功！共导入了120条数据。
     */
    @Column(length = 2000)
    protected String result;

    /**
     * 操作数据：
     */
    @TableField(typeHandler = FastjsonTypeHandler.class)
    @Column(type = MySqlTypeConstant.TEXT)
    protected LinkedHashMap data;

}
